package model

import "publish-manage/pkg/domain"

type Application struct {
	Id         string          `json:"id,omitempty" xorm:"pk varchar(50)"`
	Name       string          `json:"name,omitempty" xorm:"comment('应用名称')"`
	CreateTime domain.DateTime `json:"createTime" xorm:"created"`
}

type AppPackage struct {
	Id         string          `json:"id,omitempty" xorm:"pk varchar(50)"`
	AppId      string          `json:"appId,omitempty" xorm:"index varchar(50) comment('应用ID')"`
	Name       string          `json:"name,omitempty" xorm:"comment('名称')"`
	Type       int             `json:"type,omitempty" xorm:"comment('部署类型 1-静态资源部署 2-可执行程序直接部署 3-docker部署')"` // 类型 1-静态资源部署 2-可执行程序直接部署 3-docker部署
	Path       string          `json:"path,omitempty" xorm:"comment('服务器部署路径')"`                              // 服务器的部署路径
	ZipDir     string          `json:"zipDir,omitempty" xorm:"comment('压缩文件中的目录')"`
	Command    string          `json:"command,omitempty" xorm:"varchar(2000) comment('部署后执行的命令')"` // 部署后的命令
	CreateTime domain.DateTime `json:"createTime" xorm:"created"`
}

type PackageVersion struct {
	Id         string          `json:"id,omitempty" xorm:"pk varchar(50)"`
	AppId      string          `json:"appId,omitempty" xorm:"index varchar(50) comment('应用ID')"`
	PackageId  string          `json:"packageId" xorm:"index varchar(50) comment('部署包ID')"`
	Path       string          `json:"path" xorm:"varchar(1000) comment('保存储位置')"`
	CreateTime domain.DateTime `json:"createTime" xorm:"created"`
}

func init() {
	SyncModel = append(SyncModel, Application{}, AppPackage{}, PackageVersion{})
}
